//控制一行显示个数
var view = 8;
// 系统CD
var appCd = "";
var titles = [ "addAccount", "modifyAccount", "eraseAccount", "disableAccount",
		"unDisableAccount", "unLockAccount" ];
var buttons = {
	// 新增
	"addAccount" : {
		text : button_add,
		iconCls : 'icon-add',
		method : function() {
			search_();
			// 设置帐户状态（是否可以编辑）
			$("#account_").attr("readonly", false);
			$("#account_")
					.attr(
							"validType",
							"loginName&length[1,8]&remote['"+existaccount_+"?accountId='+$('#id').val(),'account']");
		}
	},
	// 修改
	"modifyAccount" : {
		iconCls : 'icon-edit',
		text :button_modify,
		method : function() {
			var id = $('#accountList').datagrid("getSelected");
			if (id == null) {
				$.messager.alert(message_warning, message_warning_data, 'warning');

			} else {
				search_();
				var url = getaccount_+"?accountId=" + id.id;
				$.ajax({
			        type:'get',
				        url:url+"&jsoncallback=?",
				        dataType:'json',
				        async: false,
			        success:function(datas){
						setFormJsonDataByFormId('edit_account_form', datas);
						if (datas != null && typeof datas['roles'] != 'undefined'
								&& datas['roles'] != "") {
							var ids = datas['roles'].split(",");
							$("#account_").attr("validType", "");
							// 设置选中的项
							$('#edit_roles').combotree('setValues', ids);
						}
						;
				    }
				});
				// 设置帐户状态（是否可以编辑）
				$("#account_").attr("readonly", "readonly");
			}

		}
	},
	// 注销
	"eraseAccount" : {
		iconCls : 'icon-remove',
		text : button_erase,
		method : function() {
			var id = $('#accountList').datagrid("getSelected");
			if (id == null) {
				$.messager.alert(message_warning, message_warning_data, 'warning');

			} else {
				$.messager.confirm(message_confirm, message_info_modify_select_erase, function(r) {
					if (r) {
						if (id.status != "有效") {
							$.messager.alert(message_warning, message_info_erase, 'warning');
						} else {
							editStatus(id, message_info_modify_success, 1);
						}
					}
				});
			}
		}
	},
	//禁用
	"disableAccount" : {
		iconCls : 'icon-remove',
		text : button_disable,
		method : function() {
			var id = $('#accountList').datagrid("getSelected");
			if (id == null) {
				$.messager.alert(message_warning, message_warning_data, 'warning');
			} else {
				if (id.status != "有效") {
					$.messager.alert(message_warning, message_info_disable, 'warning');
				} else {
					editStatus(id, message_info_modify_success, 2);
				}
			}
		}
	},
	//解禁
	"unDisableAccount" : {
		iconCls : 'icon-remove',
		text : button_undisable,
		method : function() {
			var id = $('#accountList').datagrid("getSelected");
			if (id == null) {
				$.messager.alert(message_warning, message_warning_data, 'warning');
			} else {
				if (id.status != "禁用") {
					$.messager.alert(message_warning, message_info_undisable, 'warning');
				} else {
					editStatus(id, message_info_modify_success, 3);
				}
			}

		}
	},
	//解锁
	"unLockAccount" : {
		iconCls : 'icon-remove',
		text : button_unlocked,
		method : function() {
			var id = $('#accountList').datagrid("getSelected");
			if (id == null) {
				$.messager.alert(message_warning, message_warning_data, 'warning');

			} else {
				if (id.status != "锁定") {
					$.messager.alert(message_warning, message_info_unlocked, 'warning');
				} else {
					editStatus(id, message_info_modify_success, 4);
				}
			}

		}
	}
};
$(window).resize(function() {
	$('#accountList').datagrid("resize", {
		height : 'auto',
		width:'auto'
	});
});

$(function() {
	 appCd="123456abcdef";
	 var mRes = "-1667686318";
	$('#accountList').datagrid({
		url : accountinfo_+"?jsoncallback=?",
		width : 'auto',
		height : 'auto',
		// 最大高度
		maxHeight : 600,
		// 是否显示分页
		pagination : true,
		// 是否显示行号
		rownumbers : true,
		// True 就会自动扩大或缩小列的尺寸以适应表格的宽度并且防止水平滚动。
		fitColumns : true,
		// True 就把行条纹化。（即奇偶行使用不同背景色）
		striped : true,
		// True 就会只允许选中一行。
		singleSelect : true,
		idField : 'id'
	});
	// 动态按钮生成
	 setbuttons(appCd,mRes,titles,buttons,callbacks);

	// 初始化角色下接选择菜单
	$('#edit_roles').combotree({
		// 获取数据URL
		url : findallrole_+"?jsoncallback=?",
		// 级联关系。选中父节点自动选中子节点
		cascadeCheck : false,
		// 是否多选
		multiple : true,
		// 只选中叶子节点
		onlyLeafCheck : true,
		panelHeight : "auto",
		width:155,
		// 选择树节点触发事件
		onSelect : function(node) {
		},
		onClick : function(node) {
		},
		onChange : function(newValue, oldValue) {
		}
	});

});
// 查询按钮事件
function doSearch() {
	if ($("#account_list_button").form("validate")) {
		accountListReLoad();
	}
}

/**
 * 重新加载账户信息列表
 */
function accountListReLoad() {
	var arrChk = "";
	$($("input[name='status']")).each(function() {
		if ($(this).attr("checked") == "checked") {
			arrChk += $(this).val() + ',';
		}
	});
	if(arrChk!=""){
		arrChk = arrChk.substring(0,arrChk.length-1);
	}
	var roles = $('#roles').combobox("getValues");
	var role = "";
	for ( var i = 0; i < roles.length; i++) {
		role = role + roles[i] + ",";
	}
	
	if(role!=""){
		role = role.substring(0,role.length-1);
	}
	
	$('#accountList').datagrid('load', {
		account : $('#account').val(),
		userMobile : $('#userMobile').val(),
		userEmail : $('#userEmail').val(),
		roles : role,
		status : arrChk
	});
}

// 数据结点查询条件
function search_(val) {
	$('#edit_account').show();
	$('#edit_account')
			.dialog(
					{
						// 定义是否显示可折叠按钮
						collapsible : false,
						// 定义是否显示最小化按钮
						minimizable : false,
						// 定义是否显示最大化按钮
						maximizable : false,
						// 定义对话框是否可编辑大小
						// resizable:true,
						// 锁住窗口
						modal : true,
						// closeOnEscape 为true的时候，点击键盘ESC键关闭dialog，
						closeOnEscape : true,
						onClose : function() {
							$("#edit_account_form").resetForm();
							$("#id").val("");
							$("#edit_account_form table input").removeClass(
									"validatebox-invalid");
							$("#edit_account_form table input").removeClass(
							"validatebox-invalid-asy");
							$(".validatebox-tip").empty();
							// 清空角色下接菜单的选中项
							$('#edit_roles').combotree('setValue', '');
							// 清空选择项
							$('#edit_roles').combotree('clear');
						},
						// 对话框底部的按钮，每个按钮包括: text, iconCls, handler etc.
						buttons : [
								{
									text : button_submit,
									iconCls : 'icon-ok',
									handler : function() {
										if ($("#edit_account_form").form(
												"validate")) {
											var accountid = $("#id").val();
											var data = $("#edit_account_form")
													.ajaxForm().formSerialize();
											var url = "";
											if (accountid == "") {
												url = registeraccount_;
											} else {
												url = updateaccount_;
											}
											$.ajax({
										        type:'get',
										        url:url+"?jsoncallback=?",
										        dataType:'json',
										        data:data,
										        async: false,
										        success:function(datas){
													if(datas['responseText'] != undefined){
														var errorInfo = datas['responseText'];
														var errors =eval("("+errorInfo+")");
														$.messager.alert('错误信息',	errors['message'],'error');
													}else{
													// 判断是新增/修改
													if (accountid == "") {
														var err_ = parseInt(datas);
														switch (err_) {
														case 1:
															$.messager.alert('错误信息','账号己经被注册，请重新输入！','error');
															break;
														case 2:
															$.messager.alert('错误信息','邮箱必须输入！','error');
															break;
														case 3:
															$.messager.alert('错误信息','生成随机密码失败！','error');
															break;
														case 4:
															$.messager.alert('错误信息','生成随机密码失败！','error');
															break;
														case 5:
															$.messager.confirm(message_confirm,'账户添加成功，是否继续添加账户？',
																	function(r) {
																		if (!r) {
																			$('#edit_account').dialog('close');
																		}
																	});
															break;
														}
													} else {
														if (datas == 5) {
															$.messager.alert(message_info,message_info_modify_success,'info');
														} else {
															$.messager.alert(message_error,message_error_modify_failure,'error');
														}
														$('#edit_account').dialog('close');
													}
													accountListReLoad();
													}
												
											    }
											});

										}
									}
								}, {
									text : button_cancal,
									handler : function() {
										$('#edit_account').dialog('close');
									}
								} ]
					});
}

function editStatus(row, message, status) {
	var url = unregisteraccount_+"?accountId=" + row.id + "&status=" + status;
	$.ajax({
        type:'get',
        url:url+"&jsoncallback=?",
        dataType:'json',
        async: false,
        success:function(datas){
    		if (datas) {
    			$.messager.alert(message_info, message_info_modify_success, 'info');
    		}
    		doSearch();
	    }
	});
}
function callbacks(button) {
	var pager = $('#accountList').datagrid('getPager');
	pager.pagination({
		// 定义了是否显示页面列表
		showPageList : true,
		// 定义了是否显示刷新按钮
		showRefresh : false,
		// 定义了是否数据正在加载
		loading : true,
		buttons : button
	});
}